package com.ruoyi.slope.ai.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 监测设备管理对象 slope_ai_device_management
 * 
 * @author ruoyi
 * @date 2025-09-05
 */
public class SlopeAiDeviceManagement extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 设备唯一标识符 (主键) */
    private String deviceId;

    /** 设备名称 */
    @Excel(name = "设备名称")
    private String deviceName;

    /** 设备类型 (高分辨率摄像头, 无人机, 边缘计算单元, 实验平台) */
    @Excel(name = "设备类型 (高分辨率摄像头, 无人机, 边缘计算单元, 实验平台)")
    private String deviceType;

    /** 设备型号 */
    @Excel(name = "设备型号")
    private String deviceModel;

    /** 部署位置/所属区域 */
    @Excel(name = "部署位置/所属区域")
    private String deploymentLocation;

    /** GPS坐标 (经纬度、高程) */
    @Excel(name = "GPS坐标 (经纬度、高程)")
    private String gpsCoordinates;

    /** 当前状态 (在线, 离线, 维护中, 故障) */
    @Excel(name = "当前状态 (在线, 离线, 维护中, 故障)")
    private String status;

    /** 核心配置参数 */
    @Excel(name = "核心配置参数")
    private String configParams;

    /** 采购日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "采购日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date purchaseDate;

    /** 上次维护日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上次维护日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastMaintenanceDate;

    /** 备注信息 */
    @Excel(name = "备注信息")
    private String notes;

    public void setDeviceId(String deviceId) 
    {
        this.deviceId = deviceId;
    }

    public String getDeviceId() 
    {
        return deviceId;
    }

    public void setDeviceName(String deviceName) 
    {
        this.deviceName = deviceName;
    }

    public String getDeviceName() 
    {
        return deviceName;
    }

    public void setDeviceType(String deviceType) 
    {
        this.deviceType = deviceType;
    }

    public String getDeviceType() 
    {
        return deviceType;
    }

    public void setDeviceModel(String deviceModel) 
    {
        this.deviceModel = deviceModel;
    }

    public String getDeviceModel() 
    {
        return deviceModel;
    }

    public void setDeploymentLocation(String deploymentLocation) 
    {
        this.deploymentLocation = deploymentLocation;
    }

    public String getDeploymentLocation() 
    {
        return deploymentLocation;
    }

    public void setGpsCoordinates(String gpsCoordinates) 
    {
        this.gpsCoordinates = gpsCoordinates;
    }

    public String getGpsCoordinates() 
    {
        return gpsCoordinates;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setConfigParams(String configParams) 
    {
        this.configParams = configParams;
    }

    public String getConfigParams() 
    {
        return configParams;
    }

    public void setPurchaseDate(Date purchaseDate) 
    {
        this.purchaseDate = purchaseDate;
    }

    public Date getPurchaseDate() 
    {
        return purchaseDate;
    }

    public void setLastMaintenanceDate(Date lastMaintenanceDate) 
    {
        this.lastMaintenanceDate = lastMaintenanceDate;
    }

    public Date getLastMaintenanceDate() 
    {
        return lastMaintenanceDate;
    }

    public void setNotes(String notes) 
    {
        this.notes = notes;
    }

    public String getNotes() 
    {
        return notes;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("deviceId", getDeviceId())
            .append("deviceName", getDeviceName())
            .append("deviceType", getDeviceType())
            .append("deviceModel", getDeviceModel())
            .append("deploymentLocation", getDeploymentLocation())
            .append("gpsCoordinates", getGpsCoordinates())
            .append("status", getStatus())
            .append("configParams", getConfigParams())
            .append("purchaseDate", getPurchaseDate())
            .append("lastMaintenanceDate", getLastMaintenanceDate())
            .append("notes", getNotes())
            .toString();
    }
}
